תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

Σχετικά έγγραφα
פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

מתמטיקה בדידה תרגול מס' 5

תרגיל 13 משפטי רול ולגראנז הערות

logn) = nlog. log(2n

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

חורף תש''ע פתרון בחינה סופית מועד א'

מתמטיקה בדידה תרגול מס' 13

ל הזכויות שמורות לדפנה וסטרייך

. {e M: x e} מתקיים = 1 x X Y

{ : Halts on every input}

Logic and Set Theory for Comp. Sci.

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

אלגברה ליניארית (1) - תרגיל 6

מודלים חישוביים תרגולמס 5

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

רשימת בעיות בסיבוכיות

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

שאלה 1 V AB פתרון AB 30 R3 20 R

אינפי - 1 תרגול בינואר 2012

תרגול מס' 6 פתרון מערכת משוואות ליניארית

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

אלגברה לינארית (1) - פתרון תרגיל 11

אלגוריתמים 1, סמסטר אביב 2017

co ארזים 3 במרץ 2016

gcd 24,15 = 3 3 =

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

מבני נתונים ואלגוריתמים תרגול #8-9

גבול ורציפות של פונקציה סקלרית שאלות נוספות

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

תורת הגרפים - סימונים

תרגול פעולות מומצאות 3

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

סיכום- בעיות מינימוםמקסימום - שאלון 806

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

תרגול מס' 1 3 בנובמבר 2012

אלגוריתמים בתורת הגרפים חלק ראשון

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

אלגברה מודרנית פתרון שיעורי בית 6

אלגוריתמים / תרגיל #1

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

מבני נתונים ויעילות אלגוריתמים

אלגברה לינארית מטריצות מטריצות הפיכות

אלגברה ליניארית 1 א' פתרון 7

מתמטיקה בדידה תרגול מס' 2

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

אלגברה א' - פתרונות לשיעורי הבית סמסטר חורף תשס"ט

x a x n D f (iii) x n a ,Cauchy

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

הרצאה נושאי הקורס 0.2 א"ב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן?

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סדרות - תרגילים הכנה לבגרות 5 יח"ל

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

תורת הקבוצות תרגיל בית 2 פתרונות

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

1 סכום ישר של תת מרחבים

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

מבני נתונים ואלגוריתמים תרגול #11

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

3-9 - a < x < a, a < x < a

אלגברה ליניארית 1 א' פתרון 2

תרגיל 7 פונקציות טריגונומטריות הערות

אלגברה ליניארית 1 א' פתרון 8

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מתמטיקה בדידה תרגול מס' 12

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

השאלות..h(k) = k mod m

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

הגדרה: מצבים k -בני-הפרדה

אלגברה לינארית 1 יובל קפלן

אלגו מתקדם ביוני 2012 מרצה: יאיר בר טל בודק: אורן בקר. איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום דרך.

מודלים חישוביים פתרון תרגיל 5

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

מבוא ללוגיקה מתמטית 80423

אלגוריתמים בתורת הגרפים חלק רביעי

חשבון אינפיניטסימלי 1

Transcript:

תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון E) G = (V, ורשימת קודקודים.s 1,..., s k, t V יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. כלומר, יש למצוא t)}.min{d(s 1, t), d(s 2, t),..., d(s k, בעיה ב' מופע: גרף מכוון (E G =,V) וקודקוד מקור s. יש למצוא: עבור כל קודקוד.d(s, (v v, V ידוע שאת בעיה ב' ניתן לפתור בזמן ( E O( V + (ע"י.(BFS תכננו אלגוריתם מבוסס רדוקציה בסיסית מבעיה א' לבעיה ב' שבה ממיר הקלט משאיר את כל הקודוקודים וכל הצלעות של הגרף המקורי, אך מוסיף עד + 1 k קודקודים וצלעות. זמן ריצה נדרש: ( E.O( V + תארו את האלגוריתם, הוכיחו את נכונותו ונתחו את זמן הריצה. שימו לב: מספר הקודקודים k הוא פרמטר ולא קבוע. הערה לסקרנותכם. קיימת רדוקציה אחרת לבעיה ב' בה ממיר הקלט מחזיר גרף עם אותו מספר צלעות ואותו מספר קודקודים כמו בגרף המקורי. פתרון תיאור האלגוריתם. ממיר הקלט. נוסיף קודקוד חדש s, ו k צלעות ממנו אל s. 1,..., s k נחזיר את המופע G = (V = V {s}, E = E {(s, s i ) : 1 i k}), s. הרצת הקופסה השחורה. הקופסה השחורה תחזיר לכל V.d G (s, v),v ממיר הפלט. נחזיר 1 t).d G (s, הוכחת נכונות. טענה ראשית. האלגוריתם מחזיר v)}.min{d G (s 1, v),..., d G (s k, טענת עזר. לכל v, V יש מסלול באורך + 1 r מ s ל v ב G אם"ם יש מסלול באורך r מ s i כלשהו ל v ב.G הוכחת הטענה הראשית על סמך טענת העזר. נניח שהאלגוריתם מחזיר r, מפני ש + 1 r d. G,s) (t = עלינו להראות ש t)}.r = min{d G (s 1, t),..., d G (s k, ראשית, מכיון ש + 1 r,d G (s, t) = על פי טענת העזר יש מסלול ב G באורך r המתחיל ב s i כלשהו ומסתיים ב.t על כן, d G (s i, t) r ובפרט: min{d G (s 1, v),..., d G (s k, v)} r. 1

כדי להראות אי שוויון בכיוון השני, נסמן.min{d G (s 1, v),..., d G (s k, v)} = d G (s j, t) = m לכן, יש מסלול מ s j ל t ב G שאורכו m. על פי טענת העזר, יש מסלול מ s ל t ב G באורך + 1 m, ולכן + 1 m.d G (s, t) = r + 1 קיבלנו כי r m = min{d G (s 1, v),..., d G (s k, v)} כנדרש. הוכחת טענת העזר. יהא v. V נוכיח את שני כיווני הטענה. :(= ) יהא v) P = (s, x 1, x 2,..., x r, x r+1 = מסלול באורך + 1 r מ s ל v ב.G אזי, מהבנייה x 1 = s i כלשהו, ומכיוון שדרגת הכניסה של s היא 0, s לא מופיע במסלול פרט להתחלה. לכן,.G ב v ל s i מ r מסלול באורך,P = (s i = x 1, x 2,..., x r, x r+1 = v) :( =) יהא v) P = (s i, x 1,..., x r = מסלול באורך r מ s i כלשהו ל v ב.G אזי, מהבנייה.G ב v ל s מ r מסלול באורך + 1 (s, s i, x 1,..., x r = v) ניתוח זמן ריצה. ממיר הקלט. אנו מוסיפים קודקוד ו k צלעות. ( O( V.O(k) הקופסה השחורה E ) O( V + E ) = O( V + 1 + E + k) = O( V + (זכרו כי V.(k ממיר הפלט. סורקים את הפלט עד שמוצאים את (t d. G,s) מחסירים אחד מערך זה, ומחזירים את התוצאה..O( V ) סך הכל: E ).O( V + שאלה 2 תהא P מטריצה מסדר.n n שידוך ל P הוא רשימה של n זוגות בטווח n}, n} {1,...,... :{1, (i 1, j 1 ), (i 2, j 2 ),..., (i n, j n ) כך שכל מספר שורה מופיע ברשימה בדיוק פעם אחת וכל מספר עמודה מופיע ברשימה בדיוק פעם אחת. כלומר, לכל k n,1 קיימים,r 1, r 2 כך ש ) 1 (k, r ו k) (r 2, מופיעים ברשימת זוגות האינדקסים. בהינתן שידוך ) n,(i 1, j 1 ), (i 2, j 2 ),..., (i n, j ערך השידוך הוא המספר הקטן ביותר במטריצה P i,j כך שזוג.min{P i1,j 1, P i2,j 2 השידוך הוא: } in,jn, P..., בשידוך. כלומר, ערך האינדקסים (j,i) מופיע 1 2 7 2 = P. להלן שידוך שערכו 1 המסומן במטריצה בכחול: 5 לדוגמה, נסתכל על המטריצה 3 1 7 9 1 2 7 P = 2 5 3,(1, 1), (2, 3), (3, 2) 1 7 9 להלן שידוך שערכו 2 המסומן במטריצה באדום, זהו שידוך בעל ערך מקסימלי: 1 2 7 P = 2 5 3,(1, 3), (2, 1), (3, 2) 1 7 9 נתונות 3 בעיות: בעיה.A1 מופע: מטריצה P מסדר n n מעל,Z ומספר.p 0 Z,p 0 P ir,j r יש למצוא: שידוך ) n (i 1, j 1 ), (i 2, j 2 ),..., (i n, j כך שלכל זוג ) r (i r, j בשידוך מתקיים: אם קיים, או להודיע כי אין שידוך העונה על התנאי. כלומר, יש למצוא שידוך שערכו לפחות p, 0 או להודיע שאין שידוך כזה. בעיה.B מופע: מטריצה P מסדר n n מעל 1}.{0, יש למצוא: שידוך ) n (i 1, j 1 ), (i 2, j 2 ),..., (i n, j בעל ערך,1 או להודיע שאין שידוך כזה. כלומר, יש,P ir,j r לכל r n,1 ואם אין שידוך העונה למצוא שידוך ) n (i 1, j 1 ), (i 2, j 2 ),..., (i n, j כך ש = 1 על התנאי יש להודיע על כך. 2

ידוע שיש אלגוריתם לבעיה B הרץ בזמן ) 2.5.O(n א. הציגו אלגוריתם מבוסס רדוקציה בסיסית מבעיה A1 לבעיה B. אין צורך בהוכחת נכונות, אך עליכם לספק ניתוח זמן ריצה. זמן ריצה נדרש: ) 2.5.O(n ב. נגדיר בעיה נוספת. בעיה.A2 מופע: מטריצה P מסדר n n מעל.Z יש למצוא: שידוך ) n (i 1, j 1 ), (i 2, j 2 ),..., (i n, j בעל ערך מקסימלי. הציגו אלגוריתם מבוסס רדוקציה מבעיה A2 לבעיה B. השתמשו ברדוקציה שאינה בסיסית. זמן ריצה נדרש: (n.o(n 2.5 log ספקו הסבר נכונות, אין צורך בהוכחה פורמלית ומפורטת. בהסבר הנכונות, הנכם רשאים להניח שהאלגוריתם מסעיף א' נכון ללא הוכחה. תיאור האלגוריתם. פתרון לסעיף א'. P i,j = { 1, Pi,j p 0 0, P i,j < p 0 ממיר הקלט. נבנה מטריצה n n חדשה P על ידי: הרצת הקופסה השחורה. הקופסה תחזיר שידוך בעל ערך 1 ב P אם קיים, ואם לא קיים שידוך כנ"ל, הקופסה השחורה תודיע על כך. תרגום הפלט. נחזיר את פלט הקופסה השחורה: שידוך או הודעה שאין שידוך העונה על התנאי. ניתוח זמן ריצה. ממיר הקלט. סורקים את המטריצה ובונים מטריצה חדשה על פי השוואת הערכים עם.O(n 2 ) p: 0 שימו לב שזמן ריצה זה הוא לינארי באורך הקלט. הרצת הקופסה השחורה. המטריצה P גם היא מסדר n n ולכן זמן הריצה הוא ) 2.5.O(n ממיר הפלט. החזרת השידוך (במקרה הגרוע),.O(n) סך הכל ) 2.5.O(n לתשומת לבכם, זמן הריצה של האלגוריתם טוב יותר מזמן ריצה ריבועי באורך הקלט. אם נסמן את אורך הקלט ב,m אזי ) 2 O(m) = O(n ונקבל כי זמן הריצה הוא m).o(m 4 פתרון לסעיף ב'. תיאור האלגוריתם. שימו לב: זוהי הוכחה מלאה ומפורטת. בתשובתכם, נדרשתם להוכחה קצרה יותר ומפורטת פחות. מכיוון שלא מדובר ברדוקציה בסיסית יש לתאר פסאודו קוד. לא ניתן לתאר רק ממיר פלט וממיר קלט. 1. מיין את איברי המטריצה P לתוך מערך ] 2 A[1..n f n 2,s 1.2.3 כל עוד s < f בצע } k f+s 2.3.1 p 0 A[k].3.2 P i,j := { 1, Pi,j p 0 אחרת,0 3.3. בנה מטריצה P על ידי 3.4. שידוך בעל ערך 1 ב P, אם קיים, או הודעה שאין שידוך כזה X.3.5 אם אין שידוך בעל ערך 1 ב,P f k 1 3

.3.6 אחרת, { s k p 0 A[s].4 P i,j := { 1, Pi,j p 0 אחרת,0 5. בנה מטריצה P על ידי 6. שידוך בעל ערך 1 ב P, אם קיים או הודעה שאין שידוך כזה X.7 החזר X הוכחת נכונות. לצורך ההוכחה, עבור משתנה V (למשל,X,s f וכו'), נסמן ב V r את ערכו של V לאחר r איטרציות של הלולאה בשורה 3. כמו כן, V 0 מציין את ערכו של V לפני בצוע האיטרציה הראשונה של הלולאה בשורה 3. טענה ראשית. האלגוריתם מחזיר שידוך בעל ערך מקסימלי. טענת עזר.1 לאחר r איטרציות של הלולאה בשורה,3 אם,f r < n 2 אין שידוך ב P שערכו 1] + r.a[f טענת עזר 2. לאחר r איטרציות של הלולאה בשורה 3, יש שידוך ב P שערכו לפחות ] r.a[s הוכחת הטענה הראשית על סמך טענות העזר. ראשית נוכיח כי האלגוריתם עוצר. אבחנה: לאחר r איטרציות,.s r f r כדי להראות שהאלגוריתם עוצר, נראה שלאחר כל איטרציה של הלולאה, המרחק בין s ל f קטן. כלומר, צריך להראות שאם האיטרציה ה + 1 r מתבצעת, אז.f r+1 s r+1 < f r s r מכיוון שאנו מניחים שהאיטרציה ה + 1 r מתבצעת,.s r < f r על פי שורה,3.1 ישנם שני מקרים: s r < k r+1 f r. מקרה א'. r+1 s r+1 = k ו.f r+1 = f r אכן מתקיים:.f r+1 s r+1 = f r k r+1 < f r s r מקרה ב'. s r+1 = s r ו r+1 1.f r+1 = k אזי,.f r+1 s r+1 = k r+1 1 s r < f r s r על פי מה שהראינו, לאחר מספר מסוים של איטרציות (נסמן: r) מתקיים s r = f r והאלגוריתם עוצר. על פי טענת עזר 2, יש שידוך שערכו לפחות ] r.a[s מנכונות הרדוקציה בסעיף א', בשורות 4 7 אנו מחזירים שידוך שערכו לפחות ] r A[s ונותר להראות שזהו שידוך בעל ערך מקסימלי. אם s, r = n 2 הטענה ברורה מכיוון ש A מערך ממוין ואז לא יתכן שידוך שערכו גדול מ ] r.a[s יוצא שהשידוך המוחזר הוא בעל ערך ] r A[s וזהו שידוך בעל ערך מקסימלי. אחרת, על פי טענת עזר 1 אין שידוך שערכו [1 + r.a[f r + [1 = A[s שוב, מכיוון ש A ממוין נקבל ששידוך שערכו ] r A[s הוא שידוך בעל ערך מקסימלי. על כן, ערכו של השידוך המוחזר הוא בדיוק ] r A[s וזהו שידוך בעל ערך מקסימלי. הוכחה לטענת עזר 1 ו 2. נוכיח את שתי הטענות יחד באינדוקציה על r. בסיס. לאחר 0 איטרציות, f 0 = n 2 ו = 1 0.s מכיוון ש,f 0 = n 2 טענת עזר 1 נכונה. בנוסף, מכיוון ש A ממוין, ב [1]A A[s 0 ] = נמצא הערך המינימלי במטריצה. לכן, כל שידוך ב P ערכו לפחות ] 0 [1]A = A[s כנדרש. צעד. נניח שטענות 1 ו 2 נכונות עבור, r ונוכיח עבור + 1 r, בהנחה שהאיטרציה ה + 1 r מתבצעת. כלומר, בהנחה ש s. r < f r נשים לב ש s r < k r+1 f r. נסתכל על שורות. 3.3. 3.4. על פי נכונות הרדוקיה בסעיף א', 1+r X הוא שידוך ב P שגודלו ] 1+r A[k לפחות, או הודעה שאין שידוך שגודלו ] 1+r A[k ב P. מקרה א'. X הוא שידוך שגודלו לפחות ] r+1.a[k אזי, r+1 s r+1 = k וטענה 2 מתקיימת. בנוסף, f r+1 = f r וטענה 1 גם כן מתקיימת מהנחת האינדוקציה. 4

מקרה ב'. X הוא הודעה על כך שאין שידוך שערכו לפחות ] 1+r A[k ב P. אזי, 1+r 1 f 1+r = k וטענה 1 מתקיימת. בנוסף, s 1+r = s r וטענה 2 גם כן מתקיימת מהנחת האינדוקציה. ניתוח זמן ריצה..1 מיון ערכי המטריצה: log(n)).o(n 2 log(n 2 )) = O(n 2 2. לולאה: בתחילה, f. s = n 2 1 לאחר כל איטרציה, המרחק בין s ל f קטן בחצי ולכן הלולאה מתבצעת O(log(n)) O(log(n 2 )) = פעמים. בכל איטרציה, בונים מטריצה מעל 1} {0, )) 2 O(n פעולות), ומריצים בדיקה האם למטריצה יש שידוך בעל ערך 1. ניתן לממש בדיקה זאת בזמן ) 2.5.O(n סך הכל הלולאה רצה בזמן log(n)).o(n 2.5 3. לאחר הלולאה, מתבצעת בנייה של מטריצה מעל {1,0} ובדיקה האם למטריצה יש שידוך בעל ערך 1.O(n 2.5 ) סך הכל: log(n)).o(n 2.5 שאלה 3 בהינתן בעיה A, לעיתים נגדיר בעיה דומה: + A שבה המופע כולל רק ערכים אי שליליים. נשתמש בהגדרה זו עבור הבעיה A2 אשר הוגדרה בשאלה הקודמת, ונקבל בעיה חדשה + A2 הזהה ל A2 פרט לכך שהמטריצה P מכילה כעת ערכים אי שליליים בלבד. א. חוקר הציע את הרדוקציה הבאה מ A2 ל + A2: ממיר הקלט. יהא c איבר שלילי במטריצה P בעל ערך מוחלט גדול ביותר, ואם אין איברים שליליים ב P,.P + i,j = P i,j + c 0 על ידי: P + נבנה מטריצה חדשה:.c = 0 ממיר הפלט. נחזיר את השידוך שהקופסה השחורה מצאה עבור + P. הוכיחו את נכונות הרדוקציה. ב. יהא (E G =,V) גרף מכוון עם פונקציית משקל על הצלעות w. : E R בהינתן מסלול P בגרף, נגדיר את משקל המסלול להיות סכום משקלי הצלעות במסלול. כלומר, אם k 1.w(P ) = Σ נתונות שתי בעיות: i=0 w(v i, v i+1 ) נגדיר P = (v 0,..., v k ),a, b וקודקודים w : E R עם פונקציית משקל על הצלעות G = (V, E) בהינתן גרף מכוון.SP ab יש למצוא מסלול פשוט מ a ל P b, כך ש ) w(p מינימלי. w : E R עם פונקציית משקל אי שלילית על הצלעות 0 G = (V, E) בהינתן גרף מכוון.SP + ab וקודקודים,a, b יש למצוא מסלול פשוט מ a ל b בעל משקל מינימלי. חוקר הציע את הרדוקציה הבאה מ SP ab ל :SP + ab ממיר הקלט. יהא c משקל שלילי של צלע בעל ערך מוחלט גדול ביותר, ואם אין משקלים שליליים, = 0 c. נבנה פונקציית משקל חדשה w על ידי: 0 c.w (e) = w(e) + ממיר הפלט. נחזיר מסלול בעל משקל מינימלי שהקופסה השחורה מצאה עבור הקלט:,G. w,,a b הראו שהרדוקציה שגויה: מצאו דוגמה נגדית שבה יש בגרף לכל היותר חמישה קודקודים. שימו לב: קיימת דוגמה נגדית עם בדיוק שלושה קודקודים. פתרון לסעיף א' 5

טענה ראשית. האלגוריתם מחזיר שידוך בעל ערך מקסימלי. הוכחה. אבחנה. לכל רשימת תאים המהווה שידוך: אם ערכו של השידוך ב P הוא p, 0 אז ערכו של השידוך ב + P הוא.p 0 + c יהא X השידוך המוחזר על ידי ממיר הפלט. אזי זהו השידוך המוחזר על ידי הקופסה השחורה. עלינו להראות שזהו שידוך בעל ערך מקסימלי עבור P. נניח שערכו של X ב P הוא k ונניח בשלילה שיש שידוך Y שערכו.m > k על פי האבחנה, ערכו של X ב + P הוא c k + וערכו של Y ב + P הוא c.m + קיבלנו כי X אינו שידוך בעל ערך מקסימלי ב + P בסתירה לכך ש X הוחזר על ידי הקופסה השחורה, המוצאת שידוך בעל ערך מקסימלי ב + P. פתרון לסעיף ב'. a -3 b -2-2 v בדוגמה זו המסלול הקל יותר מ a אל b הוא (b,a),v ומשקלו 4. ממיר הקלט מגדיל משקל כל צלע ב 3, ועל פי פונקציית המשקל שנקבל, המסלול הקל ביותר מ a ל b יהיה (b,a) ומשקלו יהיה 0. שאלה 4 בשאלה זו נתרגל הוכחת נכונות של אלגוריתם חמדן לפי המסגרת (סכימה) המומלצת שנלמדה בהרצאות (טיעון החלפה), עבור בעיה פשוטה. עוגיפלצת הרעב מעוניין להשביע את רעבונו על ידי אכילת עוגיות, אך הוא מעוניין לאכול עוגיות עם ערך קלורי נמוך ככל האפשר. לפני עוגיפלצת יש n עוגיות,, n...,2,1. לכל עוגיה i יש נפח v, i וערך קלורי c. i על מנת לשבוע, על עוגיפלצת לאכול עוגיות בנפח כולל של לפחות W. 0 ידוע שהנפח הכולל של כל העוגיות הוא לפחות.W 0 נתבונן במקרה פרטי של הבעיה הנ"ל, בה לכל עוגיה c. i = 100 i, נתון האלגוריתם החמדני הבא:.T 0,G,S {1,..., n}.1.2 כל עוד T < W 0 בצע } 2.1. הוצא מ S עוגיה בעלת נפח מקסימלי מבין העוגיות ב x S { G G {x},t T + v x.2.2 3. החזר את G. עליכם להוכיח את נכונות האלגוריתם על פי סכמת ההוכחה אשר נלמדה בהרצאות (טיעון החלפה) ולנתח זמן ריצה. מלאו את הסעיפים הנדרשים בדף התשובות: 6

1. נסחו טענה ראשית. 2. נסמן ב G r את קבוצת העוגיות שנבחרו לאחר r איטרציות. טענת נשמרת: לאחר ביצוע r איטרציות, קיים פתרון אופטימלי O r כך ש G. r O r הוכיחו את הטענה הראשית על סמך הטענה הנשמרת: הוכיחו כי הלולאה מסתיימת ולכן האלגוריתם עוצר. הוכיחו כי הפתרון המוחזר על ידי האלגוריתם הוא חוקי, כלומר הנפח הכולל הוא לפחות W. 0 הוכיחו כי הקבוצה המוחזרת היא אופטימלית. מומלץ להשתמש בטענה הנשמרת. 3. הוכיחו את הטענה הנשמרת באינדוקציה על r: בסיס. הוכיחו עבור = 0.r צעד. נניח שהטענה נכונה עבור r והאיטרציה ה + 1 r מתבצעת. תהא j העוגיה שנבחרה על ידי האלגוריתם באיטרציה ה + 1 r: מקרה א'. נניח כי j. O r הוכיחו את קיום קבוצה 1+r O. מקרה ב'. נניח כי j. / O r הוכיחו את קיום קבוצה 1+r O. השתמשו בטיעון החלפה. פתרון הוכחת נכונות. נאמר שקבוצת עוגיות היא חוקית אם נפחה הכולל הוא לפחות W, 0 ונאמר כי הקבוצה היא אופטימלית, אם היא חוקית ובעלת ערך קלורי כולל מינימלי מבין כל הקבוצות החוקיות. טענה ראשית. האלגוריתם מחזיר קבוצת עוגיות אופטימלית. טענת עזר. לאחר i איטרציות, יש פתרון אופטימלי (חוקי ומינימלי) O i כך ש G. i O i הוכחת הטענה הראשית על סמך טענת העזר. האלגוריתם עוצר. בכל איטרציה נבחרת עוגיה x, הערך הקלורי שלה מתווסף ל T והעוגיה מתווספת ל G. מכיוון שסך הערכים הקלוריים הוא לפחות W, 0 לאחר n איטרציות לכל היותר הלולאה תסתיים והאלגוריתם יעצור. האלגוריתם מחזיר פתרון חוקי. תחילה, = 0 T. בכל פעם שעוגיה מתווספת ל G, הערך הקלורי שלה מתווסף ל T. ראינו שהאלגוריתם עוצר. תנאי העצירה של הלולאה הוא T. W 0 לכן, לאחר שהלולאה עוצרת הערך הקלורי הכולל של G הוא לפחות W, 0 ולכן G חוקית. האלגוריתם מחזיר פתרון אופטימלי. נסמן ב V i את ערכו של משתנה V לאחר i איטרציות של הלולאה בשורה 2. כמו כן, בהינתן קבוצת עוגיות c(x) X, הוא הערך הקלורי הכולל של קבוצת העוגיות ו v(x) הוא הנפח הכולל של קבוצת העוגיות. נניח כי האלגוריתם עוצר לאחר r איטרציות. על פי טענת העזר, יש פתרון אופטימלי O r כך ש G. r O r לכן, ) r.c(g r ) c(o מכיוון ש O r אופטימלית ו G r חוקית, ) r c(o r ) = c(g ו G r גם כן אופטימלית. הוכחת טענת העזר. ההוכחה היא באינדוקציה על r. בסיס. עבור = 0,r G r = והטענה נכונה. צעד. נניח שהטענה נכונה ל r ונוכיח עבור + 1 r. אזי, G. r O i תהא j העוגיה שנבחרה באיטרציה ה + 1 r. לפיכך, {j}.g r+1 = G r מקרה א..j O i נקח O i+1 = O i וסיימנו. מקרה ב. j. / O r נשים לב שמכיוון שהאיטרציה ה + 1 r מתבצעת, הנפח הכולל של העוגיות ב T r G, r קטן מ W 0 ולכן G r אינה חוקית. G r O r אבל O r חוקית ו G r אינה חוקית. כלומר, c(g r ) < W 0 אבל.c(O r ) W 0 לכן, יש עוגיה.k O r \ G r מכיון ש j היא העוגיה בעלת נפח מקסימלי מבין העוגיות שאינן 7

ב.v(k) v(j),g r נגדיר {j}.o r+1 = (O r \ {k}) אזי.v(O r+1 ) v(o r ) W 0 ב r+1 O ו O r אותו מספר עוגיות ולכן ) r.c(o r+1 ) = c(o אכן, r+1 O פתרון אופטימלי המקיים r+1.g r+1 O ניתוח זמן ריצה. אתחול. נוכל להשתמש בערימה בינארית עבור S, כאשר המפתחות הן הערך הקלורי, ואת G נוכל לממש כמערך. אנו מבצעים n הכנסות לערימה ולכן זמן הריצה הוא log(n)).o(n לולאה. בכל איטרציה מוציאים איבר מ S ולכן הלולאה מתבצעת n פעמים לכל היותר. בכל איטרציה, מוציאים איבר בעל מפתח מינימלי מ (O(log(n))) S ומוסיפים אותו ל ((1)O). G ריצת הלולאה אורכת log(n)).o(n נותר רק להחזיר את G וסך הכל נקבל שזמן הריצה הוא log(n)).o(n תודה על העזרה!!! 8